#include <iostream>
#include <Eigen/Dense>

using namespace std;
using namespace Eigen;

int main()
{
     MatrixXcf a = MatrixXcf::Random(2, 2);
     cout << "Here is the matrix a\n"
          << a << endl;

     cout << "Here is the matrix a^T\n"
          << a.transpose() << endl;

     cout << "Here is the conjugate of a\n"
          << a.conjugate() << endl;

     cout << "Here is the matrix a^*\n"
          << a.adjoint() << endl;

     MatrixXf b(2, 3);
     b << 1, 2, 3, 4, 5, 6;
     cout << "Here is the initial matrix b:\n"
          << b << endl;

     b.transposeInPlace();
     cout << "and after being transposed:\n"
          << b << endl;

     return 0;
}